<?php 
/**
*   前台用户注册模型
*/
class RegisterModel extends Model{
    //指定表名
    public $table='user';       
    //指定验证规则
    public $validate=array(
        //前台注册账号验证
        //验证用户名不能为空
        array('uname','nonull','Email地址作为用户名,同时也用于接收账户信息、订单通知及密码找回功能',2,3),
        array('uname','email','请输入有效的Email地址',2,3),
        array('password','nonull','6-16位字符，可使用字母、数字或符号的组合',2,3),
        array('password','regexp:/^\w{6,16}$/','密码必须大于6位，请重新输入',2,3),
        array('password','confirm:password1','两次输入密码不一致，请重新输入',2,3),
        array('code','nonull','请输入图片中的验证码,大小写不限',2,3)
    );

    /**
     * 自动完成
     */
    public function _md5($value){
        //返回加密后的密码
        return md5($value);
    }

    /**
     * 注册
     */
    public function vReg($_POST){
        //执行上面的自动验证规则
        if(!$this->create()) return false;
        //获得用户名和密码
        $username = htmlspecialchars($_POST['uname']);//实体化处理用户名
        $password = md5($_POST['password']);//加密用户密码
        //判断验证码是否正确转大写
        $code = strtoupper($_POST['code']);
        //如果传过来的验证码不等于session里的验证码就给错误信息压入一条验证码错误
        if($code != $_SESSION['code']){
            $this->error = '验证码错误';
            return false;
        }
        //检测用户名是否存在
        $userInfo = $this->where("username = '{$username}'")->find();
        if($userInfo){
            $this->error = '用户名已存在';
            return false;
        }
        //不存在就组合一条数据，添加进用户表
        $data = array(
            'username' => $username,
            'password' => $password,
        );
        
        $lastId = $this->add($data);
//      p($lastId);
        //存入session
        $_SESSION['uname'] = $username;
        $_SESSION['uid'] = $lastId;
        //把结果反出0或1，因为分类控制器调用这个方法
        return $lastId;    
        }
}

?>